#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
搜狐号草稿发布程序 v2.0 使用示例
"""

from sohu_draft_publisher_v2 import SohuDraftPublisherV2
import logging
from datetime import datetime

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)

def example_batch_process():
    """批量处理markdown文件示例"""
    try:
        # 创建发布器实例
        publisher = SohuDraftPublisherV2('sohu_config.json')
        
        # 配置目录路径
        markdown_dir = "/Users/fuzhengliang/Desktop/project-source/workspace-mygitee/zimeiti/星座"
        published_dir = "/Users/fuzhengliang/Desktop/project-source/workspace-mygitee/zimeiti/星座/已发"
        
        print("=== 搜狐号草稿批量发布 v2.0 ===")
        print(f"源目录: {markdown_dir}")
        print(f"目标目录: {published_dir}")
        print(f"开始时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
        print("-" * 50)
        
        # 处理markdown文件
        results = publisher.process_markdown_directory(
            markdown_dir=markdown_dir,
            published_dir=published_dir,
            delay=3  # 请求间隔3秒
        )
        
        # 生成并显示报告
        report = publisher.generate_report(results)
        print(report)
        
        # 保存报告到文件
        report_file = f"sohu_publish_report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
        with open(report_file, 'w', encoding='utf-8') as f:
            f.write(report)
        
        print(f"\n报告已保存到: {report_file}")
        
        return results
        
    except Exception as e:
        logger.error(f"批量处理失败: {e}")
        return None

def example_single_file():
    """单个文件处理示例"""
    try:
        # 创建发布器实例
        publisher = SohuDraftPublisherV2('sohu_config.json')
        
        # 指定单个markdown文件
        markdown_file = "/Users/fuzhengliang/Desktop/project-source/workspace-mygitee/zimeiti/星座/明天开始转运暴富！这3个星座财神爷撒钱，闷声赚大钱秘籍.md"
        published_dir = "/Users/fuzhengliang/Desktop/project-source/workspace-mygitee/zimeiti/星座/已发"
        
        print("=== 单个文件处理示例 ===")
        print(f"文件: {markdown_file}")
        
        # 读取并解析markdown文件
        article_data = publisher._read_markdown_file(markdown_file)
        if not article_data:
            print("❌ 文件读取失败")
            return
        
        print(f"标题: {article_data['title']}")
        print(f"摘要: {article_data['brief'][:50]}...")
        print(f"内容长度: {len(article_data['content'])} 字符")
        
        # 保存草稿
        result = publisher.save_draft(
            title=article_data['title'],
            brief=article_data['brief'],
            content=article_data['content']
        )
        
        if result['success']:
            print("✅ 草稿保存成功")
            
            # 移动文件
            moved = publisher.move_file_to_published(markdown_file, published_dir)
            if moved:
                print("✅ 文件已移动到已发目录")
            else:
                print("❌ 文件移动失败")
        else:
            print(f"❌ 草稿保存失败: {result['message']}")
        
        return result
        
    except Exception as e:
        logger.error(f"单个文件处理失败: {e}")
        return None

def example_custom_content():
    """自定义内容发布示例"""
    try:
        # 创建发布器实例
        publisher = SohuDraftPublisherV2('sohu_config.json')
        
        # 自定义markdown内容
        markdown_content = """
# 测试文章标题

这是一个测试文章的内容。

## 第一部分

这里是第一部分的内容，包含一些**重要信息**。

- 列表项1
- 列表项2
- 列表项3

## 第二部分

这里是第二部分的内容，包含一些*斜体文字*。

> 这是一个引用块

## 结语

感谢阅读这篇测试文章！
"""
        
        print("=== 自定义内容发布示例 ===")
        
        # 转换markdown为HTML
        html_content = publisher._markdown_to_html(markdown_content)
        
        # 提取摘要
        brief = publisher._extract_brief_from_content(markdown_content)
        
        print(f"标题: 测试文章标题")
        print(f"摘要: {brief}")
        print(f"HTML内容长度: {len(html_content)} 字符")
        
        # 保存草稿
        result = publisher.save_draft(
            title="测试文章标题",
            brief=brief,
            content=html_content
        )
        
        if result['success']:
            print("✅ 自定义内容草稿保存成功")
        else:
            print(f"❌ 自定义内容草稿保存失败: {result['message']}")
        
        return result
        
    except Exception as e:
        logger.error(f"自定义内容发布失败: {e}")
        return None

def main():
    """主函数"""
    print("搜狐号草稿发布程序 v2.0 使用示例")
    print("=" * 40)
    
    while True:
        print("\n请选择操作:")
        print("1. 批量处理markdown文件")
        print("2. 处理单个文件")
        print("3. 自定义内容发布")
        print("0. 退出")
        
        choice = input("\n请输入选择 (0-3): ").strip()
        
        if choice == '1':
            example_batch_process()
        elif choice == '2':
            example_single_file()
        elif choice == '3':
            example_custom_content()
        elif choice == '0':
            print("再见！")
            break
        else:
            print("无效选择，请重新输入")

if __name__ == '__main__':
    main()